package cn.getech.data.development.model.vo;

import lombok.Data;

import java.io.Serializable;
import java.util.*;

/**
 * <p>
 * 任务节点信息表
 * </p>
 *
 * @author zenith
 * @since 2019-07-08
 */
@Data
public class JobLinkVO implements Serializable {

    private static final long serialVersionUID = 1L;
    /**
     * 任务节点连线的编号
     */
    private Integer id;
    /**
     * 连线的名称
     */
    private String name;

    /**
     * 菜单树id,linke_type=0,则是默认作业流的菜单id,linke_type=1,则是默认作业流依赖管理的菜单id
     */
    private Long menuId;


    /**
     * 连线的类型 0:节点  1：工作流
     */
    private Integer linkeType;

    /**
     * 任务连线的描述
     */
    private String desc;


    /**
     * 目标id
     */
    private Integer dstNodeId;


    /**
     * 来源id
     */
    private Integer srcNodeId;


    public static Set<Integer> getDstOrSrcNodeIds(List<JobLinkVO> jobLinkVos,String nodeType){
        Set<Integer> nodeIds = new HashSet<>();
        if (nodeType.equals("dst")){
            jobLinkVos.forEach(j->{
                nodeIds.add(j.getDstNodeId());
            });
        }
        else if(nodeType.equals("src")){
            jobLinkVos.forEach(j->{
                nodeIds.add(j.getSrcNodeId());
            });
        }
        return nodeIds;
    }

    public static Map<Integer,JobNodeInfoVO> getNodeMap(List<JobNodeInfoVO> jobNodeInfoVOS){
        Map<Integer,JobNodeInfoVO> nodeInfoVOMap = new HashMap<>();
        jobNodeInfoVOS.forEach(j-> {
            nodeInfoVOMap.put(j.getId(),j);
        });
        return nodeInfoVOMap;
    }

}
